#根据信息生成标签

import time
import qrcode
from PIL import Image,ImageDraw, ImageFont
import sys
lable_attribute ={12,170,700,'qrsize','device_name','group','func'}
#lable_size ={12:[170,700,'qrsize','device_name','group','func']}

# 背景图
def bakimg(width,height):
    color = (255, 255, 255, 0)  # RGBA格式，最后一个值是透明度，这里是完全透明
    image = Image.new('RGBA', (width, height), 'white')
    return image

def createqrcode(data,box_size):
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=box_size,#10,333 8,264 6,198 5,165,4,132
        border=2,
    )

    qr.add_data(data)
    qr.make(fit=True)
    img = qr.make_image(fill_color="black", back_color="white")
    #print(img.size)
    return img



def addtext(img,qrsize,lh,device_name,group,func):
    draw = ImageDraw.Draw(img)
    #print("当前行号：",sys._getframe().f_lineno,img.size)
    # 画一条从(0, 0)到(200, 100)的直线，颜色为黑色
    draw.line((lh, int(img.size[1]/2)-5, int(img.size[0]), int(img.size[1]/2)-5), fill="black",width=4)

    # 添加文字
    draw.text((lh, (img.size[1]-qrsize[0])), device_name, font=ImageFont.truetype('simhei.ttf', size=60), fill='black')
    draw.text((lh, (img.size[1]/2)), '归属:'+group+'\n'+'功能:'+func, font=ImageFont.truetype('simhei.ttf', size=30), fill='black')

    return img


def create_lable(lw,lh,id,device_name,group,func): #背景  宽 高 名称 归属 功能
    img = bakimg(lw, lh)
    qr = createqrcode(id,5)

    #插入二维码
    ofsize=int((lh-qr.size[0])/2)
    img.paste(qr, (ofsize,ofsize))

    #插入文字
    img = addtext(img, qr.size,lh,device_name,group,func) #"门禁服务器",'归属:太平洋保险金融大厦-门禁系统','功能:门禁系统管理、通信'
    #img.show()
    return img


if __name__ == '__main__':
    create_lable(700,170,'9dcfa6220516074c',"门禁服务器",'归属:太平洋保险金融大厦-门禁系统','功能:门禁系统管理、通信')